Currently, in certain large-scale parallel applications, it is sometimes helpful to be able to find the globally largest N items out of distributed lists on P nodes.
This is particularly important in bio-informatics applications, where finding the best matches to an item is a common step in the process. These algorithms are useful in the BLAST application. There are a number of approaches to this problem, although none are particularly efficient. Applications typically do a gather operation to a root node and then a local sort/search on that node. Gather operations do not scale well and require large amounts of memory. The local sorting searching is also quite time consuming.